package com.bp.project.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.bp.common.annotation.Excels;
import com.bp.system.domain.SysRegion;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bp.common.annotation.Excel;
import com.bp.common.core.domain.BaseEntity;

/**
 * 工程财务记录对象 biz_project_finance
 * 
 * @author shaominjie
 * @date 2021-01-21
 */
public class BizProjectFinance extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long financeId;

    /** 区域Id */

    private Long regionId;
    @Excels({
            @Excel(name = "区域编号",targetAttr = "regionCode",cellType = Excel.ColumnType.STRING,prompt = "区域编号"),
            @Excel(name = "区域名称",targetAttr = "regionName",cellType = Excel.ColumnType.STRING,prompt = "区域名称")
    })
    private SysRegion region;

    /** 交易类型 */
    @Excel(name = "交易类型")
    private Integer financeType;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal money;

    /** 交易方式 */
    @Excel(name = "交易方式")
    private Integer moneyType;

    /** 收入或支出 */
    @Excel(name = "收入或支出")
    private Integer inOutType;

    /** 发起人/单位 */
    @Excel(name = "发起人/单位")
    private String financeFrom;

    /** 发起账户 */
    @Excel(name = "发起账户")
    private String fromAccount;

    /** 发起人/单位编号 */
    @Excel(name = "发起人/单位编号")
    private String fromCode;

    /** 接收人/单位 */
    @Excel(name = "接收人/单位")
    private String financeTo;

    /** 接收账户 */
    @Excel(name = "接收账户")
    private String toAccount;

    /** 接收人/单位编号 */
    @Excel(name = "接收人/单位编号")
    private String toCode;

    /** 内容描述 */
    @Excel(name = "内容描述")
    private String content;

    /** 操作人 */
    @Excel(name = "操作人")
    private String operator;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operateDate;

    /** 关联工程 */

    private Long projId;
    @Excels( {
            @Excel(name = "项目名称",targetAttr = "proName",cellType = Excel.ColumnType.STRING,prompt = "项目名称"),
    })
    private BizProject project;
    /** 文件 */
    @Excel(name = "文件")
    private String fileIds;


    public SysRegion getRegion() {
        return region;
    }

    public void setRegion(SysRegion region) {
        this.region = region;
    }

    public void setFinanceId(Long financeId) {
        this.financeId = financeId;
    }

    public Long getFinanceId(){
        return financeId;
    }
    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }

    public Long getRegionId(){
        return regionId;
    }
    public void setFinanceType(Integer financeType) {
        this.financeType = financeType;
    }

    public Integer getFinanceType(){
        return financeType;
    }
    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public BigDecimal getMoney(){
        return money;
    }
    public void setMoneyType(Integer moneyType) {
        this.moneyType = moneyType;
    }

    public Integer getMoneyType(){
        return moneyType;
    }
    public void setInOutType(Integer inOutType) {
        this.inOutType = inOutType;
    }

    public Integer getInOutType(){
        return inOutType;
    }
    public void setFinanceFrom(String financeFrom) {
        this.financeFrom = financeFrom;
    }

    public String getFinanceFrom(){
        return financeFrom;
    }
    public void setFromAccount(String fromAccount) {
        this.fromAccount = fromAccount;
    }

    public String getFromAccount(){
        return fromAccount;
    }
    public void setFromCode(String fromCode) {
        this.fromCode = fromCode;
    }

    public String getFromCode(){
        return fromCode;
    }
    public void setFinanceTo(String financeTo) {
        this.financeTo = financeTo;
    }

    public String getFinanceTo(){
        return financeTo;
    }
    public void setToAccount(String toAccount) {
        this.toAccount = toAccount;
    }

    public String getToAccount(){
        return toAccount;
    }
    public void setToCode(String toCode) {
        this.toCode = toCode;
    }

    public String getToCode(){
        return toCode;
    }
    public void setContent(String content) {
        this.content = content;
    }

    public String getContent(){
        return content;
    }
    public void setOperator(String operator) {
        this.operator = operator;
    }

    public String getOperator(){
        return operator;
    }
    public void setOperateDate(Date operateDate) {
        this.operateDate = operateDate;
    }

    public Date getOperateDate(){
        return operateDate;
    }
    public void setProjId(Long projId) {
        this.projId = projId;
    }

    public Long getProjId(){
        return projId;
    }
    public void setFileIds(String fileIds) {
        this.fileIds = fileIds;
    }

    public String getFileIds(){
        return fileIds;
    }

    public BizProject getProject() {
        return project;
    }

    public void setProject(BizProject project) {
        this.project = project;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("financeId", getFinanceId())
            .append("regionId", getRegionId())
            .append("financeType", getFinanceType())
            .append("money", getMoney())
            .append("moneyType", getMoneyType())
            .append("inOutType", getInOutType())
            .append("financeFrom", getFinanceFrom())
            .append("fromAccount", getFromAccount())
            .append("fromCode", getFromCode())
            .append("financeTo", getFinanceTo())
            .append("toAccount", getToAccount())
            .append("toCode", getToCode())
            .append("content", getContent())
            .append("operator", getOperator())
            .append("operateDate", getOperateDate())
            .append("projId", getProjId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("fileIds", getFileIds())
            .toString();
    }
}
